package com.algorithm.binary;
/*
 *@Author:DOWN
 *@Date:2022/1/21 10:24
 *@Comment:给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。

           示例 1:
           输入: nums = [-1,0,3,5,9,12], target = 9
           输出: 4
           解释: 9 出现在 nums 中并且下标为 4

           示例 2:
           输入: nums = [-1,0,3,5,9,12], target = 2
           输出: -1
           解释: 2 不存在 nums 中因此返回 -1
 */

public class Solution704 {

    public int search(int[] nums, int target) {
        return seach(nums, 0, nums.length - 1, target);
    }

    public static int seach(int[] args, int l, int r, int target) {
        if (l > r) {
            return -1;
        }
        int middle = l + (r - l) / 2;
        if (args[middle]==(target)) {
            return middle;
        } else if (args[middle]>(target)) {
            return seach(args, l, middle - 1, target);
        } else {
            return seach(args, middle + 1, r, target);
        }
    }
}
